package BehaviorModel.stateModel;

/**
 * 功能描述: 发放奖品的状态
 * 2024/02/20
 *
 * @see State
 * ZhangYi
 */
public class DispenseState extends State{
    private RaffleActivity activity;

    public DispenseState(RaffleActivity activity) {
        this.activity = activity;
    }

    @Override
    public void deductMoney() {
        System.out.println(" 奖品发放中,不可扣除积分 ");
    }

    @Override
    public boolean raffle() {
        System.out.println(" 奖品发放中,不可抽奖 ");
        return false;
    }

    /**
     * 功能描述: 发放奖品
     */
    @Override
    public void dispensePrize() {

        if (activity.getCount() > 0){
            // 奖品池中还有奖品, 设置为 不可抽奖状态
            System.out.println(" 恭喜中奖了,奖品信息稍后短信通知 ");
            activity.setState(activity.getNoRaffleState());
            int count = activity.getCount();
            activity.setCount((count--) < 0 ? 0 : count);
        }else {
            // 奖品池没有奖品, 设置为
            // 改变状态为奖品发送完毕, 后面我们就不可以抽奖
            activity.setState(activity.getDispenseOutState());
            //System.out.println("抽奖活动结束");
            //System.exit(0);
        }

    }
}
